package file;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;

public class FileTestDemo {
    public static void main(String[] args) throws IOException {
        //
        //文件的创建
        File file=new File("./demo.txt");
        //三种新建文件对象时传入地址的方式1.（"普通文件地址"）
        //2. （"相对路径"） ./ 当前文件目录下
        //3. \\相当于/
        //getName 获取名称
        String s=file.getName();
        System.out.println(s);
        //length 获取长度
        long i=file.length();
        System.out.println("文件的大小:"+file.length());
        //canRead()文件的可读性
        boolean b=file.canRead();
        System.out.println("文件是否可读："+b);
        //canWrite()文件是否可写
        boolean b1=file.canWrite();
        System.out.println("文件是否可写："+b1);
        //isHidden()文件是否是隐藏的
        boolean b2=file.isHidden();
        System.out.println("文件是否隐藏："+b2);
        //exists() 判断文件是否存在
        //createNewFile() 创建文件
        File file1=new File("./test.txt");
        if (file1.exists()){
            System.out.println("文件已存在");
        }else {
            file1.createNewFile();//报错抛出异常
            System.out.println("文件已创建");
        }
        //delete() 删除文件
        if (file1.exists()){
            file1.delete();
            System.out.println("文件已删除");
        }else {
            System.out.println("文件不存在");
        }
        //
        System.out.println("------------------------");
        //目录文件的创建和删除
        //mkDir():创建目录 一级
        //mkdirs():创建目录 多级
        File dir=new File("a/b/c/d");
        if (dir.exists()){
            System.out.println("目录已存在");
        }else {
            dir.mkdir();
            //创建目录，只会创建一级目录，多了不会创建也不会报错
            System.out.println("目录已创建");
        }

        if (dir.exists()){
            System.out.println("目录已存在");
        }else {
            dir.mkdirs();
            //创建目录，会创建多级目录，多级目录会创建
            System.out.println("目录已创建");
        }
        //isDirectory() 判断是否是目录
        boolean b3=dir.isDirectory();
        System.out.println("是否是目录："+b3);
        //isFile() 是否是文件
        boolean b4=dir.isFile();
        System.out.println("是否是文件："+b4);
        //listFiles() 获取目录下的所有文件
        if (dir.isDirectory()){
            System.out.println("是一个目录");
            File[] subs=dir.listFiles();
        }else {
            System.out.println("不是一个目录");
        }
        //过滤获取目录文件下的文件
        if (dir.isDirectory()){
            System.out.println("是一个目录");
            File[] subs1=dir.listFiles (file2->file2.getName().startsWith("."));

            //遍历
            for (File file3:subs1){
                System.out.println(file3.getName());
            }
        }else {
            System.out.println("不是一个目录");
        }

    }
}
